package com.uinnova.product.eam.service.cmdb.flowable;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Data
public class CMDBFlowableParams {
    /**
     * 名称
     */
    private String name;

    /**
     * 指派用户列表
     */
    private List<String> assigneeUsers;

    /**
     * 服务 ID
     */
    private String serviceId;

    /**
     * 表单数据（JSON 字符串表示的 FormData）
     */
    private String formData;

    /**
     * 原始工单信息
     */
    private Map<String, Object> originTicketInfo;

    /**
     * 变量名称
     */
    private String variableName;

    /**
     * 变量值
     */
    private String variableValue;

    /**
     * 变量列表
     */
    private List<Variable> variables;

    /**
     * 可见范围
     */
    private String visibleRange;

    /**
     * 是否为监督模式
     */
    private boolean isSupervision;

    /**
     * 处理方式
     */
    private String handleWay;

    /**
     * 指派组列表
     */
    private List<String> assigneeGroups;

    /**
     * 监督用户列表
     */
    private List<String> supervisorUserList;

    /**
     * 后续配置
     */
    private Object subsequentConf;

    /**
     * 后续指派人
     */
    private List<String> subsequentAssignee;


    public CMDBFlowableParams(){
        /**
         * 初始化赋值固定参数
         */
        this.subsequentAssignee = new ArrayList<>();
        this.variables = new ArrayList<>();
        this.variables.add(new Variable());
        this.assigneeUsers = new ArrayList<>();
        this.assigneeGroups = new ArrayList<>();
        this.supervisorUserList = new ArrayList<>();
        this.subsequentConf = null;
        this.variableName = "pass";
        this.variableValue = "0";
        this.isSupervision = false;
        this.handleWay = "common";
        this.visibleRange = "operator";
        this.originTicketInfo = new HashMap<>();

    }

    class Variable {
        /**
         * 变量名称
         */
        private String name = "pass";

        /**
         * 变量值
         */
        private String value =  "0";


    }
}



